// 这里是一些公用的
import { UserInfoProps, PwdStrengthProps, SystemInfoProps, QueryAxiosProps } from './interface'
export interface FetchUserInfoProps {
	/** 登录账号的moid*/
	moid: string
	/**账号类型:0-自定义账号 1-e164账号 8-匿名账号 */
	account_type: number
	/**是否绑定E164号 */
	binded: number
	/**简介 */
	brief: string
	/**呼叫协议 */
	call_protocol: string
	/**会管会议审批权限 */
	cms_approval: string
	/** 出生日期*/
	date_of_birth: string
	/**数据协作管理员 */
	dcs_admin: number
	/**审计系统管理员 */
	sac_admin: number
	/**默认用户域管理员 */
	default_user_domain_admin: number
	/**部门moids */
	dept_moids: string
	/**终端类型 */
	device_type: string
	/**大数据运维管理员 */
	doms_admin: number
	/**自主创会权限 */
	enable_auto_create_meeting: number
	/**业务管理权限（服务域管理员） */
	enable_bmc: number
	/**开通电话会议 */
	enable_call: number
	/** 数据协作权限 */
	enable_dcs: number
	/** 大数据运维权限 */
	enable_doms: number
	/** 下载 */
	enable_download: number
	/** 视频全高清权限 */
	enable_full_hd: number
	/** 支持高清视频会议 */
	enable_hd: number
	/** 开启1080P高清会议权限 */
	enable_hd_meeting: number
	/**智能会议权限  */
	enable_kis: number
	/**会议直播  */
	enable_live: number
	/**  开通会议管理*/
	enable_meeting: number
	/** 会管短信权限 */
	enable_meeting_sms: number
	/** 网呈会议权限 */
	enable_nexvision: number
	/** 网管权限 */
	enable_nms: number
	/** 放像 */
	enable_play: number
	/** 公有云接入权限 */
	enable_public_cloud_access: number
	/** 点播 */
	enable_unicat: number
	/**  会议调度权限*/
	enable_vcs: number
	/** 	会场监控权限 */
	enable_venue_monit: number
	/** 录像 */
	enable_video: number
	/** 录播权限 */
	enable_vrs: number
	/**  观看直播*/
	enable_watch: number
	/**  锁定时长，多少秒后页面不操作，自动退出*/
	expired_in: number
	/** 姓名全拼 */
	full_py: string
	/** 主页 */
	home_page: string
	/**  是否默认密码*/
	init_password: number
	/** 会议大数据授权类型 */
	jdb_license_type: string
	/**会议大数据版本  */
	jdb_license_version: string
	/** XMPP账号 */
	jid: string
	/** 用户编号/工号 */
	job_num: string
	/** 	智能会议管理员 */
	kis_admin: number
	/** 智能会议默认管理员 */
	kis_default_admin: number
	/** 是否来宾 */
	limited: number
	/** 登录账号 */
	login_name: string
	/** 所属机房 */
	machine_room_moid: string
	/** 	会议管理员 */
	meeting_admin: number
	/** 网管管理员 */
	nm_admin: number
	/**  办公地址*/
	office_location: string
	/**  	安全规则moid*/
	policy_moid: string
	/** E164号限制登录的设备类型（列表） */
	restrict_used_on: string
	/** 服务域Moid */
	service_domain_moid: string
	/**ssoToken  */
	sso_token: string
	/** 	更新密码时间 */
	update_password_date_time: string
	/**用户域管理员 */
	user_domain_admin: number
	/** 录播管理员 */
	vrs_admin: number
	/** 录播默认管理员 */
	vrs_default_admin: number
	/**账号 */
	account: string
	/**登录用户名 */
	name: string
	/**邮箱 */
	email: string
	/**电话 */
	mobile: string
	/**分机 */
	ext_num: string
	/**e164号码 */
	e164: string
	/** 性别*/
	sex: string
	/** 传真*/
	fax: string
	/** 位置*/
	seat: string
	/** 部门*/
	dept_names: string
	/** 职位*/
	dept_positions: string
	/**头像 */
	portrait_bit256: string
	portrait_bit128: string
	portrait_bit64: string
	portrait_bit40: string
	user_domain_moid: string
	/**超级管理员 */
	super_domain_admin: number
}
/**用户信息 */
const transUserInfo = (FetchData: FetchUserInfoProps): UserInfoProps => {
	return {
		moid: FetchData.moid,
		/**账号类型:0-自定义账号 1-e164账号 8-匿名账号 */
		accountType: FetchData.account_type,
		/**是否绑定E164号 */
		binded: FetchData.binded,
		/**简介 */
		brief: FetchData.brief,
		/**呼叫协议 */
		callProtocol: FetchData.call_protocol,
		/**会管会议审批权限 */
		cmsApproval: FetchData.cms_approval,
		/** 出生日期*/
		dateOfBirth: FetchData.date_of_birth,
		/**数据协作管理员 */
		dcsAdmin: FetchData.dcs_admin,
		/**审计系统管理员 */
		sacAdmin: FetchData.sac_admin,
		/**默认用户域管理员 */
		defaultUserDomainAdmin: FetchData.default_user_domain_admin,
		/**部门moids */
		deptMoids: FetchData.dept_moids,
		/**终端类型 */
		deviceType: FetchData.device_type,
		/**大数据运维管理员 */
		domsAdmin: FetchData.doms_admin,
		/**自主创会权限 */
		enableAutoCreateMeeting: FetchData.enable_auto_create_meeting,
		/**业务管理权限（服务域管理员） */
		enableBmc: FetchData.enable_bmc,
		/**开通电话会议 */
		enableCall: FetchData.enable_call,
		/** 数据协作权限 */
		enableDcs: FetchData.enable_dcs,
		/** 大数据运维权限 */
		enableDoms: FetchData.enable_doms,
		/** 下载 */
		enableDownload: FetchData.enable_download,
		/** 视频全高清权限 */
		enableFullHd: FetchData.enable_full_hd,
		/** 支持高清视频会议 */
		enableHd: FetchData.enable_hd,
		/** 开启1080P高清会议权限 */
		enableHdMeeting: FetchData.enable_hd_meeting,
		/**智能会议权限  */
		enableKis: FetchData.enable_kis,
		/**会议直播  */
		enableLive: FetchData.enable_live,
		/**  开通会议管理*/
		enableMeeting: FetchData.enable_meeting,
		/** 会管短信权限 */
		enableMeetingSms: FetchData.enable_meeting_sms,
		/** 网呈会议权限 */
		enableNexvision: FetchData.enable_nexvision,
		/** 网管权限 */
		enableNms: FetchData.enable_nms,
		/** 放像 */
		enablePlay: FetchData.enable_play,
		/** 公有云接入权限 */
		enablePublicCloudAccess: FetchData.enable_public_cloud_access,
		/** 点播 */
		enableUnicat: FetchData.enable_unicat,
		/**  会议调度权限*/
		enableVcs: FetchData.enable_vcs,
		/** 	会场监控权限 */
		enableVenueMonit: FetchData.enable_venue_monit,
		/** 录像 */
		enableVideo: FetchData.enable_video,
		/** 录播权限 */
		enableVrs: FetchData.enable_vrs,
		/**  观看直播*/
		enableWatch: FetchData.enable_watch,
		/**  锁定时长，多少秒后页面不操作，自动退出*/
		expiredIn: FetchData.expired_in,
		/** 姓名全拼 */
		fullPy: FetchData.full_py,
		/** 主页 */
		homePage: FetchData.home_page,
		/**  是否默认密码*/
		initPassword: FetchData.init_password,
		/** 会议大数据授权类型 */
		jdbLicenseType: FetchData.jdb_license_type,
		/**会议大数据版本  */
		jdbLicenseVersion: FetchData.jdb_license_version,
		/** XMPP账号 */
		jid: FetchData.jid,
		/** 用户编号/工号 */
		jobNum: FetchData.job_num,
		/** 	智能会议管理员 */
		kisAdmin: FetchData.kis_admin,
		/** 智能会议默认管理员 */
		kisDefaultAdmin: FetchData.kis_default_admin,
		/** 是否来宾 */
		limited: FetchData.limited,
		/** 登录账号 */
		loginName: FetchData.login_name,
		/** 所属机房 */
		machineRoomMoid: FetchData.machine_room_moid,
		/** 	会议管理员 */
		meetingAdmin: FetchData.meeting_admin,
		/** 网管管理员 */
		nmAdmin: FetchData.nm_admin,
		/**  办公地址*/
		officeLocation: FetchData.office_location,
		/**  	安全规则moid*/
		policyMoid: FetchData.policy_moid,
		/** E164号限制登录的设备类型（列表） */
		restrictUsedOn: FetchData.restrict_used_on,
		/** 服务域Moid */
		serviceDomainMoid: FetchData.service_domain_moid,
		/**ssoToken  */
		ssoToken: FetchData.sso_token,
		/** 	更新密码时间 */
		updatePasswordDateTime: FetchData.update_password_date_time,
		/**用户域管理员 */
		userDomainAdmin: FetchData.user_domain_admin,
		/** 录播管理员 */
		vrsAdmin: FetchData.vrs_admin,
		/** 录播默认管理员 */
		vrsDefaultAdmin: FetchData.vrs_default_admin,
		/**账号 */
		account: FetchData.account,
		/**登录用户名 */
		name: FetchData.name,
		/**邮箱 */
		email: FetchData.email,
		/**电话 */
		mobile: FetchData.mobile,
		/**分机 */
		extNum: FetchData.ext_num,
		/**e164号码 */
		e164: FetchData.e164,
		/** 性别*/
		sex: FetchData.sex,
		/** 传真*/
		fax: FetchData.fax,
		/** 位置*/
		seat: FetchData.seat,
		/** 部门*/
		deptNames: FetchData.dept_names,
		/** 职位*/
		deptPositions: FetchData.dept_positions,
		/**头像 */
		portraitBit256: FetchData.portrait_bit256,
		portraitBit128: FetchData.portrait_bit128,
		portraitBit64: FetchData.portrait_bit64,
		portraitBit40: FetchData.portrait_bit40,
		/**用户域moid */
		userDomainMoid: FetchData.user_domain_moid,
		/**超级管理员 */
		superDomainAdmin: FetchData.super_domain_admin,
	}
}

interface FetchPwdStrengthProps {
	/**密码强度 */
	password_strength: number
}

/**密码强度 */
const transPwdStrength = (FetchData: FetchPwdStrengthProps): PwdStrengthProps => {
	return {
		passwordStrength: FetchData.password_strength,
	}
}

export interface FetchQueryAxiosProps {
	data: null | object
	description: string
	error_code: number
	success: number
	/**
	 *保留字段
	 */
	[key: string]: any
}
/**接口返回的结构数据的转换，里面的data需要调用具体接口后转换 */
const transAxiosInfo = (FetchData: FetchQueryAxiosProps): QueryAxiosProps => {
	return {
		...FetchData,
		/**错误状态码 */
		errorCode: FetchData.error_code,
	}
}
export interface FetchSystemInfoProps {
	/**业务名称*/
	app_name: string
	/**上下文 */
	app_path: string
	/**业务版本 */
	app_version: string
	/**品牌  */
	brand: 'kedacom' | 'movision' | 'telecom' | 'dx6000'
	/**域信息  */
	realm_name: string
	/**系统密级 integer	系统密级： 0-未配置 1-秘密 2-机密一般 3-机密增强*/
	system_security: number
	system_security_level: number
	/**向导状态： 0-未完成 1-完成 */
	config_wizard_state: number
	/**lts提醒状态： 0-未完成 1-完成 */
	lts_alert_state: number
}
/**系统信息 */
const transSystemInfo = (FetchData: FetchSystemInfoProps): SystemInfoProps => {
	return {
		appName: FetchData.app_name,
		appPath: FetchData.app_path,
		appVersion: FetchData.app_version,
		brand: FetchData.brand,
		realmName: FetchData.realm_name,
		systemSecurityLevel: FetchData.system_security_level,
		systemSecurity: FetchData.system_security,
		configWizardState: FetchData.config_wizard_state,
		ltsAlertState: FetchData.lts_alert_state,
	}
}
export { transUserInfo, transPwdStrength, transAxiosInfo, transSystemInfo }
